{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-multi-tenant-core",
      "artifactVersion": "2021.26.5",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.multi.tenant"
        ],
        "hierarchyPath": "/grp:org.nuxeo.multi.tenant",
        "id": "grp:org.nuxeo.multi.tenant",
        "name": "org.nuxeo.multi.tenant",
        "parentIds": [],
        "readmes": [],
        "version": "2021.26"
      },
      "bundleId": "org.nuxeo.ecm.multi.tenant",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.core.types/Contributions/org.nuxeo.ecm.multi.tenant.core.types--schema",
              "id": "org.nuxeo.ecm.multi.tenant.core.types--schema",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"tenantconfig\" prefix=\"tenantconfig\" src=\"schemas/tenantconfig.xsd\"/>\n\n    <!-- multi tenant vocabulary -->\n    <schema name=\"multitenantvocabulary\" src=\"schemas/multi_tenant_vocabulary.xsd\"/>\n    <schema name=\"multitenantxvocabulary\" src=\"schemas/multi_tenant_xvocabulary.xsd\"/>\n    <schema name=\"multitenantl10nvocabulary\" src=\"schemas/multi_tenant_l10nvocabulary.xsd\"/>\n    <schema name=\"multitenantl10nxvocabulary\" src=\"schemas/multi_tenant_l10nxvocabulary.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.core.types/Contributions/org.nuxeo.ecm.multi.tenant.core.types--doctype",
              "id": "org.nuxeo.ecm.multi.tenant.core.types--doctype",
              "registrationOrder": 11,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <facet name=\"TenantConfig\">\n      <schema name=\"tenantconfig\"/>\n    </facet>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.core.types",
          "name": "org.nuxeo.ecm.multi.tenant.core.types",
          "requirements": [],
          "resolutionOrder": 217,
          "services": [],
          "startOrder": 218,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.core.types\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n      point=\"schema\">\n    <schema name=\"tenantconfig\" prefix=\"tenantconfig\" src=\"schemas/tenantconfig.xsd\"/>\n\n    <!-- multi tenant vocabulary -->\n    <schema name=\"multitenantvocabulary\" src=\"schemas/multi_tenant_vocabulary.xsd\"/>\n    <schema name=\"multitenantxvocabulary\" src=\"schemas/multi_tenant_xvocabulary.xsd\"/>\n    <schema name=\"multitenantl10nvocabulary\" src=\"schemas/multi_tenant_l10nvocabulary.xsd\"/>\n    <schema name=\"multitenantl10nxvocabulary\" src=\"schemas/multi_tenant_l10nxvocabulary.xsd\"/>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"doctype\">\n    <facet name=\"TenantConfig\">\n      <schema name=\"tenantconfig\" />\n    </facet>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl--computer",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.computedgroups/Contributions/org.nuxeo.ecm.multi.tenant.computedgroups--computer",
              "id": "org.nuxeo.ecm.multi.tenant.computedgroups--computer",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl",
                "name": "org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"computer\" target=\"org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl\">\n    <groupComputer name=\"multiTenantGroupComputer\">\n      <computer>org.nuxeo.ecm.multi.tenant.MultiTenantGroupComputer</computer>\n    </groupComputer>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl--computerChain",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.computedgroups/Contributions/org.nuxeo.ecm.multi.tenant.computedgroups--computerChain",
              "id": "org.nuxeo.ecm.multi.tenant.computedgroups--computerChain",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl",
                "name": "org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"computerChain\" target=\"org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl\">\n    <groupComputerChain append=\"true\">\n      <computers>\n        <computer>multiTenantGroupComputer</computer>\n      </computers>\n    </groupComputerChain>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.computedgroups",
          "name": "org.nuxeo.ecm.multi.tenant.computedgroups",
          "requirements": [],
          "resolutionOrder": 218,
          "services": [],
          "startOrder": 216,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.computedgroups\">\n\n  <extension target=\"org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl\"\n    point=\"computer\">\n    <groupComputer name=\"multiTenantGroupComputer\">\n      <computer>org.nuxeo.ecm.multi.tenant.MultiTenantGroupComputer</computer>\n    </groupComputer>\n  </extension>\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.computedgroups.ComputedGroupsServiceImpl\"\n    point=\"computerChain\">\n    <groupComputerChain append=\"true\">\n      <computers>\n        <computer>multiTenantGroupComputer</computer>\n      </computers>\n    </groupComputerChain>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/computedgroups-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.multi.tenant.MultiTenantServiceImpl",
          "documentation": "\n    @author Thomas Roger (troger@nuxeo.com)\n  \n",
          "documentationHtml": "<p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.multi.tenant.MultiTenantService",
              "descriptors": [
                "org.nuxeo.ecm.multi.tenant.MultiTenantConfiguration"
              ],
              "documentation": "\n      The multi tenant configuration contains:\n\n      - tenantDocumentType: define the document type on which enable the\n        tenant isolation.\n      - membersGroupPermission: the default permission on the tenant for the\n        group containing all the members of the tenant.\n      - enabledByDefault: if 'true' the tenant isolation will be enabled when\n        Nuxeo starts.\n    \n",
              "documentationHtml": "<p>\nThe multi tenant configuration contains:\n</p><p>\n- tenantDocumentType: define the document type on which enable the\ntenant isolation.\n- membersGroupPermission: the default permission on the tenant for the\ngroup containing all the members of the tenant.\n- enabledByDefault: if &#39;true&#39; the tenant isolation will be enabled when\nNuxeo starts.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.MultiTenantService/ExtensionPoints/org.nuxeo.ecm.multi.tenant.MultiTenantService--configuration",
              "id": "org.nuxeo.ecm.multi.tenant.MultiTenantService--configuration",
              "label": "configuration (org.nuxeo.ecm.multi.tenant.MultiTenantService)",
              "name": "configuration",
              "version": "2021.26.5"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.MultiTenantService",
          "name": "org.nuxeo.ecm.multi.tenant.MultiTenantService",
          "requirements": [],
          "resolutionOrder": 219,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.multi.tenant.MultiTenantService",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.MultiTenantService/Services/org.nuxeo.ecm.multi.tenant.MultiTenantService",
              "id": "org.nuxeo.ecm.multi.tenant.MultiTenantService",
              "overriden": false,
              "version": "2021.26.5"
            }
          ],
          "startOrder": 809,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.MultiTenantService\">\n\n  <documentation>\n    @author Thomas Roger (troger@nuxeo.com)\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.multi.tenant.MultiTenantServiceImpl\" />\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.multi.tenant.MultiTenantService\" />\n  </service>\n\n  <extension-point name=\"configuration\">\n    <documentation>\n      The multi tenant configuration contains:\n\n      - tenantDocumentType: define the document type on which enable the\n        tenant isolation.\n      - membersGroupPermission: the default permission on the tenant for the\n        group containing all the members of the tenant.\n      - enabledByDefault: if 'true' the tenant isolation will be enabled when\n        Nuxeo starts.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.multi.tenant.MultiTenantConfiguration\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/multi-tenant-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "@author Thomas Roger (troger@nuxeo.com)\n",
          "documentationHtml": "<p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.multi.tenant.MultiTenantService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.contrib/Contributions/org.nuxeo.ecm.multi.tenant.contrib--configuration",
              "id": "org.nuxeo.ecm.multi.tenant.contrib--configuration",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.multi.tenant.MultiTenantService",
                "name": "org.nuxeo.ecm.multi.tenant.MultiTenantService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.ecm.multi.tenant.MultiTenantService\">\n\n    <configuration>\n      <tenantDocumentType>Domain</tenantDocumentType>\n      <membersGroupPermission>Read</membersGroupPermission>\n      <prohibitedGroups>\n\t<group>members</group>\n\t<group>Everyone</group>\n      </prohibitedGroups>\n    </configuration>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.contrib",
          "name": "org.nuxeo.ecm.multi.tenant.contrib",
          "requirements": [],
          "resolutionOrder": 220,
          "services": [],
          "startOrder": 217,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.contrib\"\n  version=\"1.0\">\n\n  <documentation>@author Thomas Roger (troger@nuxeo.com)</documentation>\n\n  <extension target=\"org.nuxeo.ecm.multi.tenant.MultiTenantService\"\n    point=\"configuration\">\n\n    <configuration>\n      <tenantDocumentType>Domain</tenantDocumentType>\n      <membersGroupPermission>Read</membersGroupPermission>\n      <prohibitedGroups>\n\t<group>members</group>\n\t<group>Everyone</group>\n      </prohibitedGroups>\n    </configuration>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/multi-tenant-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.listeners/Contributions/org.nuxeo.ecm.multi.tenant.listeners--listener",
              "id": "org.nuxeo.ecm.multi.tenant.listeners--listener",
              "registrationOrder": 16,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.multi.tenant.MultiTenantListener\" name=\"multiTenantListener\" postCommit=\"false\" priority=\"150\">\n      <event>documentCreated</event>\n      <event>documentCreatedByCopy</event>\n      <event>documentRemoved</event>\n      <event>lifecycle_transition_event</event>\n      <event>documentTrashed</event>\n      <event>documentUntrashed</event>\n    </listener>\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.multi.tenant.TenantAdministratorsListener\" name=\"tenantAdministratorsListener\" postCommit=\"false\" priority=\"100\">\n      <event>beforeDocumentModification</event>\n    </listener>\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.multi.tenant.acl.ACLUpdateListener\" name=\"multiTenantACLListener\" postCommit=\"false\" priority=\"150\">\n      <event>beforeDocumentSecurityModification</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.listeners",
          "name": "org.nuxeo.ecm.multi.tenant.listeners",
          "requirements": [],
          "resolutionOrder": 221,
          "services": [],
          "startOrder": 220,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.listeners\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n\n    <listener name=\"multiTenantListener\" async=\"false\"\n      postCommit=\"false\"\n      class=\"org.nuxeo.ecm.multi.tenant.MultiTenantListener\"\n      priority=\"150\">\n      <event>documentCreated</event>\n      <event>documentCreatedByCopy</event>\n      <event>documentRemoved</event>\n      <event>lifecycle_transition_event</event>\n      <event>documentTrashed</event>\n      <event>documentUntrashed</event>\n    </listener>\n\n    <listener name=\"tenantAdministratorsListener\" async=\"false\"\n      postCommit=\"false\"\n      class=\"org.nuxeo.ecm.multi.tenant.TenantAdministratorsListener\"\n      priority=\"100\">\n      <event>beforeDocumentModification</event>\n    </listener>\n\n    <listener name=\"multiTenantACLListener\" async=\"false\"\n      postCommit=\"false\"\n      class=\"org.nuxeo.ecm.multi.tenant.acl.ACLUpdateListener\"\n      priority=\"150\">\n      <event>beforeDocumentSecurityModification</event>\n    </listener>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/listeners-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.cache.CacheService--caches",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.cache.testsConfig/Contributions/org.nuxeo.ecm.multi.tenant.cache.testsConfig--caches",
              "id": "org.nuxeo.ecm.multi.tenant.cache.testsConfig--caches",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.cache.CacheService",
                "name": "org.nuxeo.ecm.core.cache.CacheService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"caches\" target=\"org.nuxeo.ecm.core.cache.CacheService\">\n\n    <cache name=\"tenants-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"tenants-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"topic-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"topic-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"subtopic-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"subtopic-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10nsubjects-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10nsubjects-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10ncoverage-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10ncoverage-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.cache.testsConfig",
          "name": "org.nuxeo.ecm.multi.tenant.cache.testsConfig",
          "requirements": [],
          "resolutionOrder": 222,
          "services": [],
          "startOrder": 215,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.cache.testsConfig\">\n\n  <extension target=\"org.nuxeo.ecm.core.cache.CacheService\" point=\"caches\">\n\n    <cache name=\"tenants-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"tenants-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"topic-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"topic-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"subtopic-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"subtopic-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10nsubjects-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10nsubjects-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10ncoverage-cache-without-ref\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n    <cache name=\"l10ncoverage-cache\">\n      <ttl>60</ttl><!-- minutes -->\n      <option name=\"maxSize\">1000</option>\n    </cache>\n\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/directories-cache-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.directories/Contributions/org.nuxeo.ecm.multi.tenant.directories--schema",
              "id": "org.nuxeo.ecm.multi.tenant.directories--schema",
              "registrationOrder": 15,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"tenant\" src=\"schemas/tenant.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.GenericDirectory--directories",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.directories/Contributions/org.nuxeo.ecm.multi.tenant.directories--directories",
              "id": "org.nuxeo.ecm.multi.tenant.directories--directories",
              "registrationOrder": 6,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.GenericDirectory",
                "name": "org.nuxeo.ecm.directory.GenericDirectory",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.GenericDirectory\">\n\n    <directory extends=\"template-directory\" name=\"tenants\">\n      <schema>tenant</schema>\n      <idField>id</idField>\n      <entryCacheName>tenants-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>tenants-cache-without-ref</entryCacheWithoutReferencesName>\n    </directory>\n\n    <directory extends=\"template-directory\" name=\"topic\">\n      <schema>multitenantvocabulary</schema>\n      <idField>id</idField>\n      <dataFile>directories/topic.csv</dataFile>\n      <entryCacheName>topic-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>topic-cache-without-ref</entryCacheWithoutReferencesName>\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint\">\n        <property name=\"targetDirectory\">subtopic</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n    <directory extends=\"template-directory\" name=\"subtopic\">\n      <schema>multitenantxvocabulary</schema>\n      <idField>id</idField>\n      <parentDirectory>topic</parentDirectory>\n      <dataFile>directories/subtopic.csv</dataFile>\n      <entryCacheName>subtopic-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>subtopic-cache-without-ref</entryCacheWithoutReferencesName>\n    </directory>\n\n    <directory extends=\"template-directory\" name=\"l10nsubjects\">\n      <schema>multitenantl10nxvocabulary</schema>\n      <idField>id</idField>\n      <parentDirectory>l10nsubjects</parentDirectory>\n      <dataFile>directories/l10nsubjects.csv</dataFile>\n      <entryCacheName>l10nsubjects-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>l10nsubjects-cache-without-ref</entryCacheWithoutReferencesName>\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint\">\n        <property name=\"targetDirectory\">l10nsubjects</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n    <directory extends=\"template-directory\" name=\"l10ncoverage\">\n      <schema>multitenantl10nxvocabulary</schema>\n      <idField>id</idField>\n      <parentDirectory>l10ncoverage</parentDirectory>\n      <dataFile>directories/l10ncoverage.csv</dataFile>\n      <entryCacheName>l10ncoverage-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>l10ncoverage-cache-without-ref</entryCacheWithoutReferencesName>\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint\">\n        <property name=\"targetDirectory\">l10ncoverage</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.directories",
          "name": "org.nuxeo.ecm.multi.tenant.directories",
          "requirements": [
            "org.nuxeo.ecm.directories"
          ],
          "resolutionOrder": 327,
          "services": [],
          "startOrder": 219,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.directories\">\n\n  <require>org.nuxeo.ecm.directories</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"tenant\" src=\"schemas/tenant.xsd\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.directory.GenericDirectory\" point=\"directories\">\n\n    <directory name=\"tenants\" extends=\"template-directory\">\n      <schema>tenant</schema>\n      <idField>id</idField>\n      <entryCacheName>tenants-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>tenants-cache-without-ref</entryCacheWithoutReferencesName>\n    </directory>\n\n    <directory name=\"topic\" extends=\"template-directory\">\n      <schema>multitenantvocabulary</schema>\n      <idField>id</idField>\n      <dataFile>directories/topic.csv</dataFile>\n      <entryCacheName>topic-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>topic-cache-without-ref</entryCacheWithoutReferencesName>\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint\">\n        <property name=\"targetDirectory\">subtopic</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n    <directory name=\"subtopic\" extends=\"template-directory\">\n      <schema>multitenantxvocabulary</schema>\n      <idField>id</idField>\n      <parentDirectory>topic</parentDirectory>\n      <dataFile>directories/subtopic.csv</dataFile>\n      <entryCacheName>subtopic-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>subtopic-cache-without-ref</entryCacheWithoutReferencesName>\n    </directory>\n\n    <directory name=\"l10nsubjects\" extends=\"template-directory\">\n      <schema>multitenantl10nxvocabulary</schema>\n      <idField>id</idField>\n      <parentDirectory>l10nsubjects</parentDirectory>\n      <dataFile>directories/l10nsubjects.csv</dataFile>\n      <entryCacheName>l10nsubjects-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>l10nsubjects-cache-without-ref</entryCacheWithoutReferencesName>\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint\">\n        <property name=\"targetDirectory\">l10nsubjects</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n    <directory name=\"l10ncoverage\" extends=\"template-directory\">\n      <schema>multitenantl10nxvocabulary</schema>\n      <idField>id</idField>\n      <parentDirectory>l10ncoverage</parentDirectory>\n      <dataFile>directories/l10ncoverage.csv</dataFile>\n      <entryCacheName>l10ncoverage-cache</entryCacheName>\n      <entryCacheWithoutReferencesName>l10ncoverage-cache-without-ref</entryCacheWithoutReferencesName>\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint\">\n        <property name=\"targetDirectory\">l10ncoverage</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/directories-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.usermanager.UserService--userManager",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.usermanager/Contributions/org.nuxeo.ecm.multi.tenant.usermanager--userManager",
              "id": "org.nuxeo.ecm.multi.tenant.usermanager--userManager",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.usermanager.UserService",
                "name": "org.nuxeo.ecm.platform.usermanager.UserService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"userManager\" target=\"org.nuxeo.ecm.platform.usermanager.UserService\">\n\n    <userManager class=\"org.nuxeo.ecm.multi.tenant.MultiTenantUserManager\">\n      <users>\n        <listingMode>search_only</listingMode>\n      </users>\n    </userManager>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.usermanager",
          "name": "org.nuxeo.ecm.multi.tenant.usermanager",
          "requirements": [
            "org.nuxeo.ecm.platform.usermanager.UserManagerImpl"
          ],
          "resolutionOrder": 548,
          "services": [],
          "startOrder": 221,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.usermanager\">\n\n  <require>org.nuxeo.ecm.platform.usermanager.UserManagerImpl</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.usermanager.UserService\"\n    point=\"userManager\">\n\n    <userManager\n      class=\"org.nuxeo.ecm.multi.tenant.MultiTenantUserManager\">\n      <users>\n        <listingMode>search_only</listingMode>\n      </users>\n    </userManager>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/usermanager-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.userworkspace.UserWorkspaceService--userWorkspace",
              "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.userworkspace/Contributions/org.nuxeo.ecm.multi.tenant.userworkspace--userWorkspace",
              "id": "org.nuxeo.ecm.multi.tenant.userworkspace--userWorkspace",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.userworkspace.UserWorkspaceService",
                "name": "org.nuxeo.ecm.platform.userworkspace.UserWorkspaceService",
                "type": "service"
              },
              "version": "2021.26.5",
              "xml": "<extension point=\"userWorkspace\" target=\"org.nuxeo.ecm.platform.userworkspace.UserWorkspaceService\">\n    <userWorkspace class=\"org.nuxeo.ecm.multi.tenant.userworkspace.MultiTenantUserWorkspaceService\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant/org.nuxeo.ecm.multi.tenant.userworkspace",
          "name": "org.nuxeo.ecm.multi.tenant.userworkspace",
          "requirements": [
            "org.nuxeo.ecm.platform.userworkspace.UserWorkspaceServiceImpl"
          ],
          "resolutionOrder": 557,
          "services": [],
          "startOrder": 222,
          "version": "2021.26.5",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.multi.tenant.userworkspace\">\n\n  <require>org.nuxeo.ecm.platform.userworkspace.UserWorkspaceServiceImpl</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.userworkspace.UserWorkspaceService\"\n    point=\"userWorkspace\">\n    <userWorkspace\n      class=\"org.nuxeo.ecm.multi.tenant.userworkspace.MultiTenantUserWorkspaceService\"/>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/userworkspace-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-multi-tenant-core-2021.26.5.jar",
      "groupId": "org.nuxeo.multi.tenant",
      "hierarchyPath": "/grp:org.nuxeo.multi.tenant/org.nuxeo.ecm.multi.tenant",
      "id": "org.nuxeo.ecm.multi.tenant",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.16.1\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 0.0.1\r\nBundle-Name: Nuxeo Multi Tenant Core\r\nBundle-SymbolicName: org.nuxeo.ecm.multi.tenant;singleton:=true\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/core-types-contrib.xml,OSGI-INF/computedgrou\r\n ps-contrib.xml,OSGI-INF/multi-tenant-service.xml,OSGI-INF/multi-tenan\r\n t-contrib.xml,OSGI-INF/listeners-contrib.xml,OSGI-INF/directories-con\r\n trib.xml,OSGI-INF/directories-cache-contrib.xml,OSGI-INF/usermanager-\r\n contrib.xml,OSGI-INF/userworkspace-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 557,
      "minResolutionOrder": 217,
      "packages": [
        "nuxeo-multi-tenant"
      ],
      "requirements": [],
      "version": "2021.26.5"
    }
  ],
  "creationDate": 1664794155250,
  "key": "Nuxeo Platform-2021.26",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.ecm.multi.tenant"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-multi-tenant-2021.26.5",
      "id": "nuxeo-multi-tenant-2021.26.5",
      "name": "nuxeo-multi-tenant",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo Multi Tenant",
      "version": "2021.26.5"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1663545600000,
  "version": "2021.26"
}